package edu.ptu.shortlink.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import edu.ptu.shortlink.admin.dao.entity.GroupDO;
import edu.ptu.shortlink.admin.dto.req.ShortLinkGroupSortReqDTO;
import edu.ptu.shortlink.admin.dto.req.ShortLinkGroupUpdateReqDTO;
import edu.ptu.shortlink.admin.dto.resp.ShortLinkGroupRespDTO;

import java.util.List;

/**
 * @BelongsProject: shortlink
 * @BelongsPackage: edu.ptu.shortlink.admin.service
 * @Author: HYJ
 * @CreateTime: 2025-04-25  16:53
 * @Description: 短链接分组接口层
 * @Version: 1.0
 */
public interface IGroupService extends IService<GroupDO> {

    /**
     * 新增分组
     *
     * @param groupName 请求参数
     */
    void saveGroup(String groupName);

    /**
     * 新增分组
     *
     * @param username  用户名
     * @param groupName 请求参数
     */
    void saveGroup(String username, String groupName);


    /**
     * 查询分组集合
     */
    List<ShortLinkGroupRespDTO> listGroup();

    /**
     * 修改分组名称
     *
     * @param requestParam 分组请求参数
     */
    void updateGroup(ShortLinkGroupUpdateReqDTO requestParam);

    /**
     * 根据gid删除分组
     *
     * @param gid 分组id
     */
    void removeGroup(String gid);

    /**
     * 短链接排序
     *
     * @param requestParam 排序请求参数
     */
    void sortGroup(List<ShortLinkGroupSortReqDTO> requestParam);
}
